// instanceof 判断数据类型
// 【原理】使用实例对象的__proto__指向的原型跟构造函数的prototype属性指向的原型是否相等来判断，
// 若直至object的构造函数指向null，整条原型链上都没有相等的，即是js类型不相等

function myInstanceof(tar, constrF) {
  const prototype = constrF.prototype
  // __proto__已经从web标准中移除
  let proto = Object.getPrototypeOf(tar)
  while(proto) {
    if(proto === prototype) return true
    proto = proto.getPrototypeOf(proto)
  } 
  return false
}